package com.zut.service;

import com.github.pagehelper.PageInfo;
import com.zut.domain.Exam;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Transactional
public interface ExamService {
    /**
     * 查询全部
     * @param pageSize
     * @param pageNum
     * @return
     */
    PageInfo<Exam> getAll(Integer pageNum, Integer pageSize);


    /**
     * 保存
     *
     * @param exam
     * @return
     */
    boolean insert(Exam exam);

    /**
     * 根据id删除
     *
     * @param id
     * @return
     */
    boolean deleteById(String id);

    /**
     * 根据id进行修改
     *
     * @param exam
     * @return
     */
    boolean update(Exam exam);

    /**
     * 根据id查询考试结果
     * @param pageNum
     * @param pageSize
     * @param place
     * @return
     */
    PageInfo<Exam> getByPlace(Integer pageNum, Integer pageSize, String place);

    /**
     * 根据科目获得考场信息
     * @param pageNum
     * @param pageSize
     * @param subject
     * @return
     */
    PageInfo<Exam> getBySubject(Integer pageNum, Integer pageSize, String subject);

    /**
     * 根据学员id获得可参加的考场信息
     * @param pageNum
     * @param pageSize
     * @param id
     * @return
     */
    PageInfo<Exam> getExamById(Integer pageNum, Integer pageSize, String id,String date);

    /**
     * 根据考试id获取考试信息
     * @param id
     * @return
     */
    Exam getByExamId(String id);

    /**
     * 根据用户id获得预约的考试信息
     * @param id
     * @return
     */
    Exam getOrderExam(String id);

    PageInfo<Exam >getOrderExamPage(Integer pageNum, Integer pageSize, String id);

    /**
     * 根据考场id获得考场信息
     * @param id
     * @return
     */
    Exam getExam(String id);
}
